package com.flow.dao;

import java.util.List;

import com.flow.model.AccountType;
import com.flow.model.PagerModel;

public interface IAccountTypeDao<T> {

	public boolean insertAccountType(AccountType accountType);

	public boolean updateAccountType(AccountType accountType);
	
	public boolean deleteAccountType(AccountType accountType);
	
	public AccountType findAccountTypeByHql(String hql);

	public AccountType findAccountTypeByHql(String hql, Object param);

	public AccountType findAccountTypeByHql(String hql, List<Object> params);

	public int universalMethodAccountType(String hql);
	
	public int universalMethodAccountType(String hql, Object param);
	
	public int universalMethodAccountType(String hql, List<Object> params);
	
	public List<T> findAccountTypeAllByHql(String hql);

	public List<T> findAccountTypeAllByHql(String hql, Object param);

	public List<T> findAccountTypeAllByHql(String hql, List<Object> params);

	public PagerModel findAccountTypePagerModeled(PagerModel pager, String hql);
	
	public PagerModel findAccountTypePagerModeled(PagerModel pager, String hql, Object param);
	
	public PagerModel findAccountTypePagerModeled(PagerModel pager, String hql, List<Object> params);
	
}
